package main

import (
	"fmt"
	"time"
)

// 1. 编写一个函数，来计算各个数的阶乘，并放入到map中
// 2. 启动多个协程，统计的将结果放入到map中
// 3. map应该是全局的

var (
	myMap = make(map[int]int, 10)
)

// test函数就是计算n!，将这个结果放入myMap中
func test(n int) {

	res := 1
	for i := 1; i <= n; i++ {

		res *= i

	}

	// 将res放入到myMap中
	myMap[n] = res

}

func main() {

	for i := 1 ; i <= 20; i++ {
		go test(i)
	}

	// 休眠10秒
	time.Sleep(time.Second * 10)

	// 输出结果
	for i, v := range myMap {
		fmt.Printf("map[%d]=%d\n", i, v)
	}

}